The next generation of commercial high capacity Ka frequency band (i.e., 26.5-40 GHz) satellite-based broadband systems promise high data rates for the end user at a low cost. These systems typically use multiple gateway terminals to communicate with a large number of user terminals, with the satellite between the gateway terminal and the user terminals. A forward link of a satellite communications system may consist of forward uplink transmissions from a gateway terminal to a satellite, a “bent pipe” repeater at the satellite, and forward downlink transmissions to a group of user terminals located in a common spot beam. A return link of a satellite communications system may consist of return uplink transmissions from user terminals in a common spot beam to a satellite, and return downlink transmissions from the satellite to a gateway terminal servicing the spot beam.
It is well known that in order to ensure reliable data transmission, Forward Error Correction (FEC) is used in such systems. On the bursty return link, various user terminals transmit bursts of data of various sizes. A burst is defined as a contiguous radio frequency transmission from an individual user terminal. Each burst can include one or more codewords, where a codeword is defined as an individual decodable FEC block. The sizes of these codewords can be as short as a few bytes (e.g., 32 bytes) to as long as multiple kilobytes (e.g., 8192 bytes). The particular FEC scheme employed could vary from system to system, but typical modern systems use FEC schemes that require complicated iterative decoders. Examples of such FEC schemes include turbo codes and low-density parity-check (LDPC) codes.
The FEC decoders for the return link can be in a physical layer (PHY) processing subsystem located in the gateway. Each PHY processing subsystem typically processes a fixed amount of bandwidth (e.g., 62.5 MHz or 125 MHz), which can include multiple return link channels. Thus, each PHY processing subsystem can be responsible for decoding bursts transmitted on these multiple return link channels. Typically, each decoder is dedicated for the decoding of a respective return link channel. As a result, processing of a codeword transmitted on a particular return link channel does not begin until the respective decoder is available, even if all the other decoders of that PHY processing subsystem are available. This can happen quite often for Time Division Multiple Access (TDMA) systems, where burst assignments are not deterministic. The result can be an undesirably high latency for processing codewords. A variation on a TDMA system is a Multi-Frequency TDMA (MF-TDMA) system, where each user could be made to hop across different frequency channels on a burst-by-burst basis.
The number of FEC decoders in each PHY processing subsystem is an important design decision. These decoders are typically fairly complicated and thus utilize a significant amount of hardware and/or software resources. These decoders can be implemented, for example, as Field Programmable Gate Arrays (FPGAs), Application Specific Integrated Circuits (ASICs), or some other hardware/software components (e.g., microprocessors). Thus, minimizing the number of decoders needed in each PHY processing subsystem is important in the design of small, efficient, and less expensive gateway terminals.
The FEC decoders employed in most modern systems are iterative decoders. Iterative decoders process the same codeword one or more times in an iterative manner, where each iteration generally moves the codeword closer to being decoded correctly. The number of iterations needed to decode a codeword correctly is a random variable and cannot be predicted a priori. Even though most codewords might need a relatively small number of iterations before being decoded correctly, some codewords might need a large number of iterations before being decoded correctly. There may be other codewords that will not decode correctly even after reaching a maximum number of iterations. The number of iterations needed to decode a particular codeword affects the amount of time that the decoder spends on the particular codeword and thus, the number of decoders needed to decode a particular rate of incoming bursts.
Some applications, such as Voice over Internet Protocol (VoIP), are less tolerant to latency and jitter (i.e., variability in the decoding time needed) and are generally transmitted as short codewords. Typically, longer codewords take longer to decode than shorter codewords take to decode. Thus, if a short codeword follows a long codeword, processing of the long codeword can introduce further latency to processing of the shorter codeword.